﻿#
# KNIGHT
# ––––––––––––––––––––––––––––
# BY: SIMON KLIT-JOHNSON // github.com/simonklitjohnson
# Move with WASD, attack with E and dodge with Q.
#
# 2016
#
# Description:
#
# You're Artore the Puny, littlebrother and inferior to your great big brother, King Arthur.
#
# There have been speculations that the village alchemist, Nefarious Richard, has developed a potion that will allow him
# 	to turn into a highly dangerous bat-like creature. You've embarked on a quest to slay Nefarious Richard, who rumor
#	will have it has had too much of his own potion, and is now permanently a bat-like creature.
# Your big brother King Arthur has promised you that if you slay Nefarious Richard, you earn the rights to the throne!
#
# Good luck!


:alias px vd
:alias py vc
:alias ps vb
:alias ex va
:alias ey v9
:alias eyfrac v3
:alias playerlives v8
:alias enemylives v7
:alias dashcounter v6
:alias strikecounter v5
:alias attackcounter v4

:const IDLE 1
:const ATTACK 2
:const DASH 3

:const NONE 1
:const WEAPON 2
:const SHIELD 3
:const FULL 4

:const FALSE 0
:const TRUE 1

: main
	# set variables start
	playerlives := 9
	enemylives := 4
	dashcounter := 0
	strikecounter := 0

	px := 235
	py := 0b0001111
	ps := IDLE
	# set variables end
		hires
		i := kni
		v0 := 8
		v1 := 3
		sprite v0 v1 0
		i := ght
		v0 += 16
		sprite v0 v1 0
		i := title-end
		v0 += 16
		sprite v0 v1 0

		i := q-key
		v0 := 65
		v1 := 28
		sprite v0 v1 0
		i := da
		v0 += 11
		sprite v0 v1 0
		i := sh
		v0 += 16
		sprite v0 v1 0

		i := e-key
		v0 := 65
		v1 := 40
		sprite v0 v1 0
		i := at
		v0 += 11
		sprite v0 v1 0
		i := ta
		v0 += 12
		sprite v0 v1 0
		i := ck
		v0 += 12
		sprite v0 v1 0

		i := r-key
		v0 := 60
		v1 := 7
		sprite v0 v1 0
		i := to
		v0 += 11
		sprite v0 v1 0
		i := pl
		v0 += 17
		sprite v0 v1 0
		i := ay
		v0 += 12
		sprite v0 v1 0

		i := w-key
		v0 := 22
		v1 := 25
		sprite v0 v1 0
	
		i := s-key
		v0 := 22
		v1 := 35
		sprite v0 v1 0

		i := a-key
		v0 := 12
		v1 := 35
		sprite v0 v1 0

		i := d-key
		v0 := 32
		v1 := 35
		sprite v0 v1 0

		i := mo
		v0 := 13
		v1 := 46
		sprite v0 v1 0

		i := ve-string
		v0 := 27
		sprite v0 v1 0
		playerlives := 8
		loop
		if playerlives > 7 begin			
				v0 := 13   if v0 key then playerlives := 7 # keyboard R - play
		else
			if playerlives == 7 begin
				lores
				spawn

				draw-gui

				i := player
				sprite px py 0
				playerlives := 3
			end
			loop
				if playerlives != 0 begin
					if enemylives != 0 begin
						if playerlives < 7 then draw
					end
				end		
				# lock the framerate of this program via the delay timer:
				loop
					v0 := delay
					if v0 != 0 then
				again
				v0 := 3
				delay := v0
			again	
		end
	again

: draw
	sprite px py 0 #erase player
	# if player is attacking, let attack persist for a couple of frames (reduces difficulty) before dropping to idle
	if ps == ATTACK begin
		if attackcounter > 2 begin
			ps := IDLE
		end
	end
	draw-dash-counter
	if dashcounter == 20 begin
		dashcounter := 0
	end
	draw-dash-counter

	if ps == DASH begin
		if dashcounter > 2 begin
			ps := IDLE
		end
	end
	# prevent player spamming attack, by letting 10 frames pass between attacks
	if attackcounter == 11 begin
		attackcounter := 0
	end
	if attackcounter > 0 then attackcounter += 1
	if dashcounter > 0 then dashcounter += 1
	if strikecounter > 0 then strikecounter += 1
	# erase the player, update its position and then redraw:
	keypresses #detect keypresses
	if ps == ATTACK then i := player-weapon-attack #if player is attacking, find correct sprite
	if ps == IDLE then i := player-weapon #if player is idle, find correct sprite
	if ps == DASH then i := player-weapon #if player is idle, find correct sprite
	sprite px py 0
	if strikecounter > 0 begin
		i := enemy-pullback
	else
		i := enemy
	end
	sprite ex ey 0
	ai
	if strikecounter > 0 begin
		i := enemy-pullback
	else
		i := enemy
	end
	sprite ex ey 0
	if ps == ATTACK then i := player-weapon-attack #if player is attacking, find correct sprite
	if ps == IDLE then i := player-weapon #if player is idle, find correct sprite
	if ps == DASH then i := player-weapon #if player is idle, find correct sprite
	if vf != 0 then collision

	return	

: collision
	v0 := 2
	buzzer := v0
	sprite px py 0 #erase playerwidth
	v1 := 20
	v2 := -5
	if ps != DASH begin
		horizontal-negative #:move player
	else
		horizontal-positive
	end
	sprite px py 0 #redraw player

	draw-lives #remove lives counter

	# change lives according to who's hit
	if ps == ATTACK begin
		enemylives += -1
		if enemylives == 0 then jump victory
	end
	if ps == IDLE begin
		playerlives += -1
		if playerlives == 0 then jump gameover
	end

	draw-lives #redraw lives counter
	
	# set i back to player sprite after drawing different sprites
	if ps == ATTACK then i := player-weapon-attack #if player is attacking, find correct sprite
	if ps == IDLE then i := player-weapon #if player is idle, find correct sprite
	if ps == DASH then i := player-weapon #if player is idle, find correct sprite
	return

: draw-gui
	v0 := 2
	v1 := 1
	i := heart
	sprite v0 v1 0
	v0 := 57
	sprite v0 v1 0
	draw-lives


	v0 := 0
	v1 := 7
	i := line

	sprite v0 v1 0
	v0 := 16
	sprite v0 v1 0
	v0 := 32
	sprite v0 v1 0
	v0 := 48
	sprite v0 v1 0

	draw-dash-counter

	return

: draw-dash-counter
	v0 := 15
	v1 := 1
	if dashcounter > 0 begin
		i := dashlogo-used
	else
		i := dashlogo
	end
	sprite v0 v1 0
	return

: draw-lives
	v0 := 9
	v1 := 1
    i  := hex playerlives   # load the address of a character
    sprite v0 v1 5 # built in characters are 5 pixels tall
    v0 := 51
    i  := hex enemylives   # load the address of a character
    sprite v0 v1 5 # built in characters are 5 pixels tall
    return

: keypresses
	v1 := 1
	v2 := -1
	v0 := 5   if v0 key then vertical-positive # keyboard W
	v0 := 8   if v0 key then vertical-negative # keyboard S
	v0 := 7   if v0 key then horizontal-negative # keyboard A
	v0 := 9   if v0 key then horizontal-positive # keyboard D
	v0 := 6   if v0 key then attack # keyboard E - attack
	v0 := 4   if v0 key then dash # keyboard Q - dash
	return

: vertical-positive
	if py > 9 begin
		if py < 25 then py += -1
	end
	return

: vertical-negative
	if py > 7 begin
		if py < 24 then py += 1
	end
	return

: horizontal-negative
	px += v2
	#if px < 255 begin
	#	if px <= 58 then px += v2
	#end
	#px += v1
	return

: horizontal-positive
	px += v1
	#playerwidth
	#pwidth += px
	#pwidth += 1
	#if pwidth >= 0 begin
#		if pwidth < 64 then px += 1#
#	end
	return

: attack
	if attackcounter == 0 begin
		ps := ATTACK
		attackcounter := 1
	end
	return

: dash
	if dashcounter == 0 begin
		px += -5
		draw-dash-counter
		dashcounter += 1
		draw-dash-counter
		ps := DASH
	end
	return

: spawn
	px := 195
	playerlives := 3
	py := 20
	ex := 235
	ey := 18
	eyfrac := 100
	i := enemy
	sprite ex ey 0
	return

: ai
	if px > ex begin
		ex += 1
	else
		ex += -1
	end
	if py > ey begin
		eyfrac += 20
		if eyfrac == 200 begin
			ey += 1
			eyfrac := 100
		end
	else
		eyfrac += -20
		if eyfrac == 0 begin
			ey += -1
			eyfrac := 100
		end
	end

	v0 := random 0b0001111
	if v0 == 3 begin
		if strikecounter == 0 begin
			strikecounter := 1
		end
	end
	if strikecounter == 20 begin
		ex += -3
		strikecounter := 0
	end
	return

: gameover
	clear
	hires
	i := your
	v0 := 42
	v1 := 10
	sprite v0 v1 0
	i := ea
	v0 += 16
	sprite v0 v1 0
	i := disg
	v1 := 18
	v0 := 42
	sprite v0 v1 0
	i := race
	v0 += 16
	sprite v0 v1 0
	i := art
	v1 := 26
	v0 := 52
	sprite v0 v1 0
	i := hur
	v0 += 16
	sprite v0 v1 0
	i := r-key
	v0 := 36
	v1 := 47
	sprite v0 v1 0
	i := to
	v0 += 11
	sprite v0 v1 0
	i := pl
	v0 += 17
	sprite v0 v1 0
	i := ay
	v0 += 12
	sprite v0 v1 0
	loop
		v0 := 13   if v0 key then jump main # keyboard Q - dash
	again
	return

: victory
	clear
	hires
	i := youc
	v0 := 27
	v1 := 10
	sprite v0 v1 0
	i := canb
	v0 += 16
	sprite v0 v1 0
	i := ekin
	v0 += 16
	sprite v0 v1 0
	i := kno
	v0 += 17
	sprite v0 v1 0
	i := w-letter
	v0 += 16
	sprite v0 v1 0
	i := art
	v1 := 18
	v0 := 52
	sprite v0 v1 0
	i := hur
	v0 += 16
	sprite v0 v1 0
	i := r-key
	v0 := 36
	v1 := 47
	sprite v0 v1 0
	i := to
	v0 += 11
	sprite v0 v1 0
	i := pl
	v0 += 17
	sprite v0 v1 0
	i := ay
	v0 += 12
	sprite v0 v1 0
	loop
		v0 := 2
		buzzer := v0
		v0 := 13   if v0 key then jump main # keyboard Q - dash
	again
	return

: player
	0x38 0x00 0x38 0x00 0x10 0x00 0x38 0x00 
	0x54 0x00 0x10 0x00 0x28 0x00 0x28 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: player-attack
	0x38 0x00 0x38 0x00 0x10 0x00 0x3E 0x00 
	0x50 0x00 0x10 0x00 0x28 0x00 0x28 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: player-weapon
	0x38 0x00 0x38 0x00 0x10 0x00 0x3A 0x00 
	0x57 0x80 0x12 0x00 0x28 0x00 0x28 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: player-weapon-attack
	0x38 0x00 0x38 0x00 0x10 0x00 0x39 0x00 
	0x57 0xC0 0x11 0x00 0x28 0x00 0x28 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 


: player-shield
	0x38 0x00 0x38 0x00 0x10 0x00 0xB8 0x00 
	0xD4 0x00 0x90 0x00 0x28 0x00 0x28 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: player-shield-attack
	0x38 0x00 0x38 0x00 0x10 0x00 0xBE 0x00 
	0xD0 0x00 0x90 0x00 0x28 0x00 0x28 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: player-full
	0x38 0x00 0x38 0x00 0x10 0x00 0xBA 0x00 
	0xD7 0x80 0x92 0x00 0x28 0x00 0x28 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: player-full-attack
	0x38 0x00 0x38 0x00 0x10 0x00 0xB9 0x00 
	0xD7 0xC0 0x91 0x00 0x28 0x00 0x28 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: enemy
	0x1C 0x00 0x1C 0x00 0x08 0x00 0x7F 0x00 
	0x3E 0x00 0x08 0x00 0x1C 0x00 0x14 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: enemy-pullback
	0x1C 0x00 0x1C 0x00 0x08 0x00 0x3F 0x80 
	0x3E 0x00 0x08 0x00 0x1C 0x00 0x14 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: enemy-strike
	0x1C 0x00 0x1C 0x00 0x08 0x00 0xFE 0x00 
	0x3E 0x00 0x08 0x00 0x1C 0x00 0x14 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: heart
	0x50 0x00 0xF8 0x00 0xF8 0x00 0x70 0x00 
	0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: three
	0xC0 0x00 0x20 0x00 0x40 0x00 0x20 0x00 
	0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: line
	0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

: dashlogo-used
	0x78 0x00 0xFC 0x00 0xFC 0x00 0xFC 0x00 
	0x78 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: dashlogo
	0x78 0x00 0xA4 0x00 0xB4 0x00 0x94 0x00 
	0x78 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: d
	0x7F 0xF0 0x80 0x08 0x80 0x04 0x80 0x02 
	0x80 0x01 0x80 0x01 0x80 0x01 0x80 0x01 
	0x80 0x01 0x80 0x01 0x80 0x01 0x80 0x01 
	0x80 0x02 0x80 0x04 0x80 0x08 0x7F 0xF0 

: e
	0x7F 0xFF 0x80 0x00 0x80 0x00 0x80 0x00 
	0x80 0x00 0x80 0x00 0x80 0x00 0xFF 0xF0 
	0x80 0x00 0x80 0x00 0x80 0x00 0x80 0x00 
	0x80 0x00 0x80 0x00 0x80 0x00 0x7F 0xFF 

: a
	0x3F 0xFC 0x40 0x02 0x80 0x01 0x80 0x01 
	0x80 0x01 0x80 0x01 0xFF 0xFF 0x80 0x01 
	0x80 0x01 0x80 0x01 0x80 0x01 0x80 0x01 
	0x80 0x01 0x80 0x01 0x80 0x01 0x80 0x01 

: w
	0x80 0x02 0x80 0x02 0x80 0x02 0x80 0x02 
	0x80 0x02 0x80 0x02 0x81 0x02 0x81 0x02 
	0x81 0x02 0x81 0x02 0x81 0x02 0x81 0x02 
	0x81 0x02 0x81 0x02 0x81 0x02 0x7F 0xFC 

: i-letter
	0x7F 0xFE 0x01 0x00 0x01 0x00 0x01 0x00 
	0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 
	0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 
	0x01 0x00 0x01 0x00 0x01 0x00 0x7F 0xFE 

: n
	0x80 0x01 0xC0 0x01 0xA0 0x01 0x90 0x01 
	0x88 0x01 0x84 0x01 0x82 0x01 0x81 0x01 
	0x80 0x81 0x80 0x41 0x80 0x21 0x80 0x11 
	0x80 0x09 0x80 0x05 0x80 0x03 0x80 0x01 

: k
	0x80 0x7F 0x80 0x80 0x81 0x00 0x82 0x00 
	0x84 0x00 0x88 0x00 0x90 0x00 0xE0 0x00 
	0xE0 0x00 0x90 0x00 0x88 0x00 0x84 0x00 
	0x82 0x00 0x81 0x00 0x80 0x80 0x80 0x7F 

: g
	0x7F 0xFE 0x80 0x00 0x80 0x00 0x80 0x00 
	0x80 0x00 0x80 0x00 0x80 0x00 0x80 0x00 
	0x83 0xFF 0x82 0x01 0x82 0x01 0x80 0x01 
	0x80 0x01 0x80 0x01 0x80 0x01 0x7F 0xFE 

: h
	0x80 0x01 0x80 0x01 0x80 0x01 0x80 0x01 
	0x80 0x01 0x80 0x01 0x80 0x01 0x80 0x01 
	0xFF 0xFF 0x80 0x01 0x80 0x01 0x80 0x01 
	0x80 0x01 0x80 0x01 0x80 0x01 0x80 0x01 

: t
	0xFF 0xFE 0x01 0x00 0x01 0x00 0x01 0x00 
	0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 
	0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 
	0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 

: q-key
	0x7F 0x00 0xFF 0x80 0xC3 0x80 0xDB 0x80 
	0xDB 0x80 0xDB 0x80 0xC1 0x80 0xFF 0x80 
	0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: e-key
	0x7F 0x00 0xFF 0x80 0xE3 0x80 0xEF 0x80 
	0xE3 0x80 0xEF 0x80 0xE3 0x80 0xFF 0x80 
	0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: w-key
	0x7F 0x00 0xFF 0x80 0xD5 0x80 0xD5 0x80 
	0xD5 0x80 0xD5 0x80 0xC1 0x80 0xFF 0x80 
	0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: a-key
	0x7F 0x00 0xFF 0x80 0xE3 0x80 0xEB 0x80 
	0xE3 0x80 0xEB 0x80 0xEB 0x80 0xFF 0x80 
	0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: s-key
	0x7F 0x00 0xFF 0x80 0xF3 0x80 0xEF 0x80 
	0xF7 0x80 0xFB 0x80 0xE7 0x80 0xFF 0x80 
	0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: d-key
	0x7F 0x00 0xFF 0x80 0xE7 0x80 0xEB 0x80 
	0xEB 0x80 0xEB 0x80 0xE7 0x80 0xFF 0x80 
	0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: da
	0xE1 0xCE 0x92 0x29 0x8A 0x28 0x8A 0x28 
	0x8A 0x28 0x8A 0x28 0x8A 0x28 0x92 0x29 
	0xE1 0xCE 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: sh
	0x1C 0xF0 0x20 0x80 0xA0 0x80 0xA0 0x80 
	0xA0 0xE0 0xAC 0x80 0xA2 0x80 0x22 0x80 
	0x1C 0xF0 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00  

: mo
	0x6C 0x70 0x92 0x88 0x92 0x88 0x92 0x88 
	0x92 0x88 0x92 0x88 0x92 0x88 0x82 0x88 
	0x82 0x70 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: ve-string
	0x00 0x78 0x82 0x80 0x82 0x80 0x82 0x80 
	0x82 0xE0 0x82 0x80 0x44 0x80 0x28 0x80 
	0x10 0x78 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
 
: at
	0x73 0xE0 0x88 0x80 0x88 0x80 0x88 0x80 
	0x88 0x80 0xF8 0x80 0x88 0x80 0x88 0x80 
	0x88 0x80 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: ta
	0xF9 0xC0 0x22 0x20 0x22 0x20 0x22 0x20 
	0x22 0x20 0x23 0xE0 0x22 0x20 0x22 0x20 
	0x22 0x20 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: ck
	0x7A 0x20 0x82 0x20 0x82 0x40 0x82 0x80 
	0x83 0x00 0x82 0x80 0x82 0x40 0x82 0x20 
	0x7A 0x20 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: to
	0xF9 0xC0 0x22 0x20 0x22 0x20 0x22 0x20 
	0x22 0x20 0x22 0x20 0x22 0x20 0x22 0x20 
	0x21 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: pl
	0x72 0x00 0x8A 0x00 0x8A 0x00 0x8A 0x00 
	0x8A 0x00 0xF2 0x00 0x82 0x00 0x82 0x00 
	0x81 0xE0 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: ay
	0x72 0x20 0x8A 0x20 0x8A 0x20 0x89 0xC0 
	0x88 0x80 0xF8 0x80 0x88 0x80 0x88 0x80 
	0x88 0x80 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: kni
	0x00 0x00 0x0F 0xFF 0x1F 0xFF 0x3F 0xFF 
	0x7F 0xFF 0xFB 0x46 0xFA 0xDA 0xF9 0xDA 
	0xFA 0xDA 0xFB 0x5A 0xFB 0x5A 0xFF 0xFF 
	0x7F 0xFF 0x3F 0xFF 0x1F 0xFF 0x00 0x00 

: ght
	0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 
	0xFF 0xFF 0xC5 0xA0 0xBD 0xBB 0xBD 0xBB 
	0xA4 0x3B 0xB5 0xBB 0xC5 0xBB 0xFF 0xFF 
	0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 


: title-end
	0x00 0x00 0x80 0x00 0xC0 0x00 0xE0 0x00 
	0xF0 0x00 0xF8 0x00 0xF8 0x00 0xF8 0x00 
	0xF8 0x00 0xF8 0x00 0xF8 0x00 0xF8 0x00 
	0xF0 0x00 0xE0 0x00 0xC0 0x00 0x00 0x00 

: r-key
	0x7F 0x00 0xFF 0x80 0xE3 0x80 0xEB 0x80 
	0xE7 0x80 0xEB 0x80 0xEB 0x80 0xFF 0x80 
	0x7F 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 


: your
	0xA4 0xAB 0xAA 0xAA 0xAA 0xA3 0x4A 0xA2 
	0x44 0x42 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: ea
	0x18 0x40 0xA0 0xA0 0x30 0xE0 0xA0 0xA0 
	0x98 0xA0 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: disg
	0xC9 0x9B 0xAA 0x22 0xAB 0xAB 0xA8 0xAA 
	0xCB 0x12 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: race
	0x11 0xBA 0xAA 0x22 0x3A 0x32 0xAA 0x20 
	0xA9 0xBA 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: art
	0x04 0xCE 0x0A 0xA4 0xEE 0xC4 0x0A 0xA4 
	0x0A 0xA4 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: hur
	0xAA 0xC0 0xAA 0xA0 0xEA 0xC0 0xAA 0xA0 
	0xA4 0xA0 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: youc
	0xA4 0xA1 0xAA 0xA2 0xAA 0xA2 0x4A 0xA2 
	0x44 0x41 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: canb
	0x93 0x0C 0x2A 0x8A 0x3A 0x8C 0x2A 0x8A 
	0xAA 0x8C 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: ekin
	0xE2 0x56 0x82 0x95 0xC3 0x15 0x82 0x95 
	0xE2 0x55 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: kno
	0xE3 0x12 0x82 0xAA 0x82 0xAA 0xA2 0xAA 
	0xE2 0x91 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

: w-letter
	0x28 0x00 0x28 0x00 0x28 0x00 0xA0 0x00 
	0x48 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
	0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
